#ifndef ITAP_API_ERROR_H
#define ITAP_API_ERROR_H

//=============================================================================
/**
 *	\addtogroup G_ERR_INNER_API		ITapAPI内部返回的错误码定义。
 *	@{
 */
//=============================================================================
//! 成功
namespace ITapTrade {
//=============================================================================
/**
 *	\addtogroup G_ERR_LOGIN		登录过程错误
 *	@{
 */
//=============================================================================
//! 登录过程执行错误
const int TAPIERROR_LOGIN = 10001;
//! 登录用户不存在
const int TAPIERROR_LOGIN_USER = 10002;
//! 需要进行动态认证
const int TAPIERROR_LOGIN_DDA = 10003;
//! 登录用户未授权
const int TAPIERROR_LOGIN_LICENSE = 10004;
//! 登录模块不正确
const int TAPIERROR_LOGIN_MODULE = 10005;
//! 需要强制修改密码
const int TAPIERROR_LOGIN_FORCE = 10006;
//! 登录状态禁止登录
const int TAPIERROR_LOGIN_STATE = 10007;
//! 登录密码不正确
const int TAPIERROR_LOGIN_PASS = 10008;
//! 没有该模块登录权限
const int TAPIERROR_LOGIN_RIGHT = 10009;
//! 登录数量超限
const int TAPIERROR_LOGIN_COUNT = 10010;
//! 登录用户不在服务器标识下可登录用户列表中
const int TAPIERROR_LOGIN_NOTIN_SERVERFLAGUSRES = 10011;
//! 登录用户已被冻结
const int TAPIERROR_LOGIN_FREEZE = 10012;
//! 密码错误，用户冻结
const int TAPIERROR_LOGIN_TOFREEZE = 10013;
//! 客户状态不允许登录
const int TAPIERROR_LOGIN_ACCOUNTSTATE = 10014;
//! 需要进行二次认证
const int TAPIERROR_LOGIN_SECCERTIFI = 10015;

// 未绑定二次认证信息
const int TAPIERROR_LOGIN_NOSECONDSET = 10016;
// 不受信任的计算机登录
const int TAPIERROR_LOGIN_NOTURSTHOST = 10017;
// 非本交易中心客户
const int TAPIERROR_LOGIN_NOTINTRADECENTER = 10019;
// 版本和后台版本不不一致
const int TAPIERROR_LOGIN_INCONSISTENT = 10020;
// 客户所属交易中心前置地址未配置
const int TAPIERROR_LOGIN_NOCENTERFRONTADDRESS = 10021;
// 不允许此账号类型登录
const int TAPIERROR_LOGIN_PROHIBITACCOUNTTYPE = 10022;

// 需要信息采集-直连
const int TAPIERROR_LOGIN_GATHERINFO_DIRECT = 10023;
// 需要信息采集-中继
const int TAPIERROR_LOGIN_GATHERINFO_RELAY = 10024;

// 允许重置密码
const int TAPIERROR_LOGIN_RESET_PASSWORD = 10025;
// 重置密码链接次数超限
const int TAPIERROR_LOGIN_RESET_PASSWORD_EXCEEDED = 10026;
// 不支持操作员重置密码
const int TAPIERROR_LOGIN_OPERATOR_UNALLOWED_RESET = 10027;
// 冻结重置密码
const int TAPIERROR_LOGIN_RESET_PASSWORD_FROZEN = 10028;

// 身份验证失败
const int TAPIERROR_LOGIN_VERIFYIDENTITY_FAILED = 10029;
// 身份验证次数超限
const int TAPIERROR_LOGIN_VERIFYIDENTITY_EXCEED = 10030;
// 授权已到期
const int TAPIERROR_LOGIN_LICENSE_EXPIRED = 10031;

// 不允许重置密码-没有设置发送方式
const int TAPIERROR_LOGIN_PROHIBITRESETPASSWORD = 10032;
// 允许冻结状态解冻
const int TAPIERROR_LOGIN_UNFREEZE = 10033;
// 冻结状态解冻结链接数量超限
const int TAPIERROR_LOGIN_UNFREEZE_EXCEEDED = 10034;
// 不允许解冻-没有设置发送方式
const int TAPIERROR_LOGIN_PROHIBIT_UNFREEZE = 10035;
// 不需要解冻-登录未冻结
const int TAPIERROR_LOGIN_NONEED_UNFREEZE = 10036;

//!	二次验证失败
const int TAPIERROR_SECONDCERTIFICATION_FAIL = 14001;
//!	二次验证超时
const int TAPIERROR_SECONDCERTIFICATION_TIMEOVER = 14002;
//! 二次认证错误次数超限，重新登录
const int TAPIERROR_SECONDCERTIFICATION_RELOGIN = 14003;
//! 二次认证错误次数超限，用户冻结
const int TAPIERROR_SECONDCERTIFICATION_FREEZE = 14004;
//=============================================================================
//! 设置重复
const int TAPIERROR_DATA_REPEAT = 1062;
//! 数据库连接失败
const int TAPIERROR_CONN_DATABASE = 11000;
//! 数据库操作失败
const int TAPIERROR_OPER_DATABASE = 11001;
//! 不允许一对多
const int TAPIERROR_NEED_ONETOONE = 11002;
//! 删除失败-存在关联信息，
const int TAPIERROR_EXIST_RELATEINFO = 11003;
//! 删除分组失败-分组有下属或在操作员下属中
const int TAPIERROR_EXIST_RELATEINFOOFGROUP = 11004;

// 审核状态不予许修改
const int TAPIERROR_CHECK_FAILED = 11006;
// 不允许存在重复3.0外部品种编号
const int TAPIERROR_EXIST_OUTSIDECOMMODITYNO = 11007;
// 客户结算单不存在
const int TAPIERROR_NOTEXIST_BILL = 11008;
// 不允许增加此类型账号
const int TAPIERROR_LOGIN_PROHIBITADDACCOUNTTYPE = 11009;
// 账号类型不允许为空
const int TAPIERROR_ACCOUNTINFO_NOTEXPTY = 11010;
// 主账号不允许为空
const int TAPIERROR_ACCOUNTINFO_SuperiorNOTEMPTY = 11011;
// 超过信任设备绑定数量上限
const int TAPIERROR_USERTRUSTDEVICE_ADDLIMITE = 11012;
// 非法映射
const int TAPIERROR_UPPERACCOUNTMAPPING_NOTALLOW = 11013;

//! 登录用户密码修改失败-原始密码错误
const int TAPIERROR_USERPASSWORD_MOD_SOURCE = 12001;
//! 登录用户密码修改失败-不能与前n次密码相同
const int TAPIERROR_USERPASSWORD_MOD_SAME = 12002;
//! 登录用户密码修改失败-新密码不符合密码复杂度要求
const int TAPIERROR_USERPASSWORD_MOD_COMPLEXITY = 12003;

//! 一个币种组只能设置一个基币
const int TAPIERROR_CURRENCY_ONLY_ONEBASE = 13001;
//! 基币只能是美元或港币
const int TAPIERROR_CURRENCY_ONLY_USDHKD = 13002;

//! 用户采集信息密钥未找到
const int TAPIERROR_GATHERINFO_NO_AUTHKEY = 17001;
//! APPID认证失败
const int TAPIERROR_GATHERINFO_AUTH_FAILED = 17002;
//=============================================================================
/**
 *	\addtogroup G_ERR_TRADE_SERVICE		交易服务错误代码定义
 *	@{
 */
//=============================================================================

//! 资金账号不存在
const int TAPIERROR_ORDERINSERT_ACCOUNT = 60001;
//! 资金账号状态不正确
const int TAPIERROR_ORDERINSERT_ACCOUNT_STATE = 60002;
//! 资金账号交易中心不一致
const int TAPIERROR_ORDERINSERT_TRADECENT_ERROR = 60003;
// 主账号不允许下单
const int TAPIERROR_ORDERINT_MAINACCOUNT_ERROR = 60004;
// 主账号信息错误
const int TAPIERROR_ORDERINT_MAINACCINFO_ERROR = 60005;
// 账号禁止期权市价下单
const int TAPIERROR_ORDERINT_NO_OPTMARKET_ERROR = 60006;
// 目前不支持的指令
const int TAPIERROR_ORDERINT_UN_SUPPORT_ERROR = 60007;
//! 下单无效的合约
const int TAPIERROR_ORDERINSERT_CONTRACT = 60011;
//! LME未准备就绪
const int TAPIERROR_ORDERINSERT_LME_NOTREADY = 60012;
//! 不支持的下单类型
const int TAPIERROR_ORDERINSERT_ERROR_ORDER_TYPE = 60013;
//! 错误的埋单类型
const int TAPIERROR_ORDERINSERT_READY_TYPE_ERROR = 60014;
//! 不合法的委托类型
const int TAPIERROR_ORDERINSERT_ORDER_TYPE_ERROR = 60015;
// 下单合约标的合约不存在
const int TAPIERROR_ORDERINSERT_SUBCONTRACT = 60016;
// 现货下单买入数量错误
const int TAPIERROR_ORDERINSERT_SPOTBUYQTY = 60017;
// 非认购期权不允许备兑
const int TAPIERROR_ORDERINSERT_RESERVE_PUT = 60018;
// 买入开仓不允许备兑
const int TAPIERROR_ORDERINSERT_RESERVE_B_OPEN = 60019;
// 卖出平仓不允许备兑
const int TAPIERROR_ORDERINSERT_RESERVE_S_COVER = 60020;
//! 客户权限禁止交易
const int TAPIERROR_ORDER_NOTRADE_ACCOUNT = 60021;
//! 客户品种分组禁止交易
const int TAPIERROR_ORDER_NOTRADE_COM_GROUP = 60022;
//! 客户合约特设禁止交易
const int TAPIERROR_ORDER_NOTRADE_ACC_CONTRACT = 60023;
//! 系统权限禁止交易
const int TAPIERROR_ORDER_NOTRADE_SYSTEM = 60024;
//! 客户权限只可平仓
const int TAPIERROR_ORDER_CLOSE_ACCOUNT = 60025;
//! 客户合约特设只可平仓
const int TAPIERROR_ORDER_CLOSE_ACC_CONTRACT = 60026;
//! 系统权限只可平仓
const int TAPIERROR_ORDER_CLOSE_SYSTEM = 60027;
//! 只可平仓提前天数限制只可平仓
const int TAPIERROR_ORDER_CLOSE_DAYS = 60028;
//! 客户品种风控权限禁止交易
const int TAPIERROR_ORDER_NOTRADE_RISK = 60029;
//! 客户品种风控权限只可平仓
const int TAPIERROR_ORDER_CLOSE_RISK = 60030;

//! 持仓量超过最大限制
const int TAPIERROR_ORDERINSERT_POSITIONMAX = 60031;
//! 下单超过单笔最大量
const int TAPIERROR_ORDERINSERT_ONCEMAX = 60032;
//! 下单合约无交易路由
const int TAPIERROR_ORDERINSERT_TRADEROUTE = 60033;
//! 委托价格超出偏离范围
const int TAPIERROR_ORDER_IN_MOD_PRICE_ERROR = 60034;
//! 超过GiveUp最大持仓量
const int TAPIERROR_ORDER_IN_GIVEUP_POS_MAX = 60035;
// 持仓量超过ETF总持仓限制
const int TAIERROR_ORDER_ETF_POSITIONMAX = 60036;
// 持仓量超过ETF权利仓限制
const int TAIERROR_ORDER_ETF_BUYPOSITIONMAX = 60037;
// 持仓量超过ETF单日买入开仓限制
const int TAIERROR_ORDER_ETF_BUYONEDAYPOSITIONMAX = 60038;
// 可用锁定现货不足
const int TAIERROR_ORDERINSERT_NOTENOUGHSPOT = 60039;
// 现货不支持备兑
const int TAIERROR_ORDERINSERT_RESERVE_SPOT = 60040;

//! 未登录网关
const int TAPIERROR_UPPERCHANNEL_NOT_LOGIN = 60041;
//! 未找到网关信息
const int TAPIERROR_UPPERCHANNEL_NOT_FOUND = 60042;
// 此品种不支持解锁或锁定
const int TAPIERROR_COMMODITY_LOCK = 60043;
// 现货未设置对应期权品种
const int TAPIERROR_SPOT_ROOT_COMMODITY = 60044;
// 现货对应期权无交易路由
const int TAIERROR_SPOT_ROOTCOM_TRADEROUTE = 60045;

//! 下单资金不足
const int TAPIERROR_ORDERINSERT_NOTENOUGHFUND = 60051;
//! 手续费参数错误
const int TAPIERROR_ORDERINSERT_FEE = 60052;
//! 保证金参数错误
const int TAPIERROR_ORDERINSERT_MARGIN = 60053;
//! 总基币资金不足
const int TAPIERROR_ORDERINSERT_BASENOFUND = 60054;

//! 超过保证金额度
const int TAPIERROR_ORDERINSERT_MARGINAMOUNT = 60055;
//! 总基币超过开仓比例限制
const int TAPIERROR_ORDERINSERT_OPENRATIO = 60056;
//! 独立币种组超过开仓比例限制
const int TAPIERROR_ORDERINSERT_GROUP_OPENRATIO = 60057;
//! 风险阵列参数错误
const int TAPIERROR_ORDERINSERT_RISKARRAY = 60058;
// 总基币超过限购额度限制
const int TAIERROR_ORDERINSERT_BUYLIMITE = 60059;
// 独立币种组超过限购额度限制
const int TAIERROR_ORDERINSERT_GROUP_BUYLIMITE = 60060;
//! 撤单无此系统号
const int TAPIERROR_ORDERDELETE_NOT_SYSNO = 60061;
//! 此状态不允许撤单
const int TAPIERROR_ORDERDELETE_NOT_STATE = 60062;
//! 录单不允许撤单
const int TAPIERROR_ORDERDELETE_NO_INPUT = 60063;
// 不允许撤销锁定/解锁指令
const int TAPIERROR_ORDERDELETE_NO_TRADE = 60064;

//! 此状态不允许改单
const int TAPIERROR_ORDERMODIFY_NOT_STATE = 60071;
//! 人工单不允许改单
const int TAPIERROR_ORDERMODIFY_BACK_INPUT = 60072;
//! 风险报单不允许改单
const int TAPIERROR_ORDERMODIFY_RISK_ORDER = 60073;
//! 成交量大于改单量
const int TAPIERROR_ORDERMODIFY_ERROR_QTY = 60074;
//! 预埋单不允许改单
const int TAPIERROR_ORDERMODIFY_ERROR_READY = 60075;

//! 已删除报单不能转移
const int TAPIERROR_ORDERINPUT_CANNOTMOVE = 60081;

//! 录单重复
const int TAPIERROR_ORDERINPUT_REPEAT = 60091;

//! 合约行情价格修改失败
const int TAPIERROR_CONTRACT_QUOTE = 60101;

//! 下单超过上手单笔最大量
const int TAPIERROR_UPPER_ONCEMAX = 60111;
//! 下单超过上手最大持仓量
const int TAPIERROR_UPPER_POSITIONMAX = 60112;
// 品种总仓层最大持仓量超限
const int TAPIERROR_ORDERINSERT_POSMAX_COM = 60113;
// 品种净仓层最大持仓量超限
const int TAPIERROR_ORDERINSERT_POSMAX_COM_NET = 60114;

//! 开平方式错误
const int TAPIERROR_ORDERINSERT_CLOSEMODE = 60121;
//! 委托平仓持仓不足
const int TAPIERROR_CLOSE_ORDER = 60122;
//! 成交平仓失败
const int TAPIERROR_CLOSE_MATCH = 60123;
// 现货平仓超过锁定量
const int TAPIERROR_CLOSE_SPOT_OUT_LOCK = 60124;
// 现货备兑基数为空
const int TAPIERROR_CLOSE_SPOT_OUT_NULL = 60125;

//! 未找到本地委托
const int TAPIERROR_MOD_DEL_NO_ORDER = 60131;
//! 与网关断开连接
const int TAPIERROR_MOD_DEL_GATEWAY_DISCON = 60132;

//! 录单成交重复
const int TAPIERROR_MATCHINPUT_REPEAT = 60141;
//! 录单成交未找到对应委托
const int TAPIERROR_MATCHINPUT_NO_ORDER = 60142;
//! 录单成交合约不存在
const int TAPIERROR_MATCHINPUT_NO_CONTRACT = 60143;
//! 录单成交参数错误
const int TAPIERROR_MATCHINPUT_PARM_ERROR = 60144;
//! 录单成交委托状态错误
const int TAPIERROR_MATCHINPUT_OSTATE_ERROR = 60145;
// 录单成交开平标志错误
const int TAPIERROR_MATCHINPUT_OCMODE_ERROR = 60146;

//! 成交删除未找到成交
const int TAPIERROR_MATCHREMOVE_NO_MATCH = 60151;
//! 此状态成交不可删
const int TAPIERROR_MATCHREMOVE_STATE_ERROR = 60152;
//! 成交合约信息错误
const int TAPIERROR_MATCHINFO_CONTRACT_ERROR = 60153;

//! 不允许录入此状态订单
const int TAPIERROR_ORDERINPUT_STATE_ERROR = 60161;
//! 错误的修改订单请求
const int TAPIERROR_ORDERINPUT_MOD_ERROR = 60162;
//! 订单不可删，存在对应成交
const int TAPIERROR_ORDERREMOVE_ERROR = 60163;
//! 不合法的委托状态
const int TAPIERROR_ORDERINPUT_MOD_STATE_ERROR = 60164;
//! 此状态不允许订单转移
const int TAPIERROR_ORDEREXCHANGE_STATE_ERROR = 60165;
//! 订单不允许删除
const int TAPIERROR_ORDERREMOVE_NOT_ERROR = 60166;

//! 做市商双边撤单未找到委托
const int TAPIERROR_ORDERMARKET_DELETE_NOTFOUND = 60171;
//! 做市商双边撤单客户不一致
const int TAPIERROR_ORDERMARKET_DEL_ACCOUNT_NE = 60172;
//! 做市商双边撤单品种不一致
const int TAPIERROR_ORDERMARKET_DEL_COMMODITY_NE = 60173;
//! 做市商双边撤单合约不一致
const int TAPIERROR_ORDERMARKET_DEL_CONTRACT_NE = 60174;
//! 做市商双边撤单买卖方向相同
const int TAPIERROR_ORDERMARKET_DEL_SIDE_EQ = 60175;
//! 做市商双边撤单买卖方向错误
const int TAPIERROR_ORDERMARKET_DEL_SIDE_ERROR = 60176;
//! 做市商单边检查未通过
const int TAPIERROR_ORDERMARKET_OTHER_SIDE_ERROR = 60177;
// 做市商双边撤单系统号错误
const int TAPIERROR_ORDERMARKET_DEL_SYSTEMNO_ERROR = 60178;

//! 埋单激活失败，订单未找到
const int TAPIERROR_ORDERACTIVATE_NOTFOUND_ERROR = 60181;
//! 埋单激活失败，非有效状态
const int TAPIERROR_ORDERACTIVATE_STATE_ERROR = 60182;
// 挂起激活失败，网关不支持
const int TAPIERROR_ORDERACTIVATE_GATEWAY_ERROR = 60183;

// 操作员无跨中心下单权限
const int TAPIERROR_TRANSIT_ORDERINSERT_RIGHT = 60191;
// 未连接中转服务
const int TAPIERROR_TRANSIT_ORDERINSERT_DISCON = 60192;
// 下单未连接目标交易中心
const int TAPIERROR_TRANSIT_ORDERINSERT_DISCON_DEST = 60193;
// 撤单未连接目标交易中心
const int TAPIERROR_TRANSIT_ORDERDELETE_DISCON_DEST = 60194;
// 改单未连接目标交易中心
const int TAPIERROR_TRANSIT_ORDERMODIFY_DISCON_DEST = 60195;
// 错误的中转订单操作
const int TAPIERROR_TRANSIT_ORDER_OPERATOR = 60196;

// 客户权限禁止买入
const int TAPIERROR_ORDER_DISALLOWBUY_ACCOUNT = 60201;
// 客户权限禁止卖出
const int TAPIERROR_ORDER_DISALLOWSELL_ACCOUNT = 60202;
// 系统权限禁止买入
const int TAPIERROR_ORDER_DISALLOWBUY_SYSTEM = 60203;
// 系统权限禁止卖出
const int TAPIERROR_ORDER_DISALLOWSELL_SYSTEM = 60204;
// 客户权限禁止卖开仓期权 -仅外盘系统
const int TAPIERROR_ORDER_DIS_SELLOPTION_ACCOUNT = 60205;
// 系统权限禁止卖开仓期权 -仅外盘系统
const int TAPIERROR_ORDER_DIS_SELLOPTION_SYSTEM = 60206;
// 非标准合约只可平仓
const int TAPIERROR_ORDER_CONTRACT_CLOSE = 60207;
// 风控权限只可下强平单
const int TAPIERROR_ORDER_INSERT_RISK_CLOSE = 60208;

// 超出贷款限额
const int TAPIERROR_ORDERINSERT_LOANAMOUNT = 60211;
// 此品种不支持组合策略
const int TAPIERROR_COMBINE_COMMODITY = 60220;
// 组合申报合约期权类型不符合要求
const int TAPIERROR_COMBINE_CALLORPUT = 60221;
// 拆分的组合持仓不存在
const int TAPIERROR_COMBINE_COMPOSITION = 60222;
// 拆分的组合持仓数量不足
const int TAPIERROR_COMBINE_COMPOSITION_QTY = 60223;
// 组合申报合约备兑标识不符合要求
const int TAPIERROR_COMBINE_HEDGEFLAG = 60224;
// 组合申报合约买卖方向不符合要求
const int TAPIERROR_COMBINE_ORDERSIDE = 60225;
// 组合申报合约大小不符合要求
const int TAPIERROR_COMBINE_CONTRACTSIZE = 60226;
// 组合申报合约到期日不符合要求
const int TAPIERROR_COMBINE_CONTRACTDAYS = 60227;
// 组合申报合约行权价不符合要求
const int TAPIERROR_COMBINE_STRIKEPRICE = 60228;
// 相同合约不允许组合
const int TAPIERROR_COMBINE_CONTRACT_SAME = 60229;

// 备兑解锁量不足
const int TAPIERROR_ORDERINSERT_UNLOCK_NOE = 60230;
// 期权开仓备兑量不足
const int TAPIERROR_ORDEROPEN_OPT_SPOT_NOE = 60231;
// 期权平仓备兑量不足
const int TAPIERROR_ORDERCLOSE_OPT_SPOT_NOE = 60232;
// 无效的备兑订单
const int TAPIERROR_ORDERINSERT_COVERED_UNVLD = 60233;
// 正在订阅行情，请重试
const int TAPIERROR_ORDERINSERT_QUOTE_PRICE = 60240;
// 不允许重复申购
const int TAPIERROR_ACCOUNTIPO_REPEAT = 60250;
// 未找到有效申购信息
const int TAPIERROR_ACCOUNTIPO_NOT_EXIST = 60251;

// 主账号保证金参数错误
const int TAPIERROR_ORDERINSERT_MAIN_MARGIN = 60261;
//=============================================================================
/**
 *	\addtogroup G_ERR_GATE_WAY		网关错误代码定义
 *	@{
 */
//=============================================================================

//! 网关未就绪，未连接上手
const int TAPIERROR_GW_NOT_READY = 80001;
//! 品种错误
const int TAPIERROR_GW_INVALID_COMMODITY = 80002;
//! 合约错误
const int TAPIERROR_GW_INVALID_CONTRACT = 80003;
//! 报单字段有误
const int TAPIERROR_GW_INVALID_FIELD = 80004;
//! 价格不合法
const int TAPIERROR_GW_INVALID_PRICE = 80005;
//! 数量不合法
const int TAPIERROR_GW_INVALID_VOLUME = 80006;
//! 报单类型不合法
const int TAPIERROR_GW_INVALID_TYPE = 80007;
//! 委托模式不合法
const int TAPIERROR_GW_INVALID_MODE = 80008;
//! 委托不存在（改单、撤单）
const int TAPIERROR_GW_ORDER_NOT_EXIST = 80009;
//! 发送报单失败
const int TAPIERROR_GW_SEND_FAIL = 80010;
//! 被上手拒绝
const int TAPIERROR_GW_REJ_BYUPPER = 80011;

//=============================================================================
/**
 *	\addtogroup G_ERR_FRONT_SERVICE		前置返回错误
 *	@{
 */
//=============================================================================

//! 前置不允许该模块登录
const int TAPIERROR_TRADEFRONT_MODULETYPEERR = 90001;
//! 一次请求太多数据
const int TAPIERROR_TRADEFRONT_TOOMANYDATA = 90002;
//! 前置没有所要数据
const int TAPIERROR_TRADEFRONT_NODATA = 90003;
//! 所查询的操作员信息不存在
const int TAPIERROT_TRADEFRONT_NOUSER = 90004;

//! 前置与交易断开
const int TAPIERROR_TRADEFRONT_DISCONNECT_TRADE = 90011;
//! 前置与管理断开
const int TAPIERROR_TRADEFRONT_DISCONNECT_MANAGE = 90012;

//! 下属资金账号不存在
const int TAPIERROR_TRADEFRONT_ACCOUNT = 90021;
//! 该操作员不允许交易
const int TAPIERROR_TRADEFRONT_ORDER = 90022;
//! 查询频率过快
const int TAPIERROR_TRADEFRONT_FREQUENCY = 90023;
//! 该授权不予许登录
const int TAPIERROR_TRADEFRONT_RUFUSE = 90024;
//! 自成交验证不通过
const int TAPIERROR_TRADEFRONT_SELFMATCH = 90025;
// 单客户不予许撤强平单
const int TAPIERROR_TRADEFRONT_DELETEFORCE = 90026;

const int TAPIERROR_SUCCEED = 0;
//! 连接服务失败
const int TAPIERROR_ConnectFail = -1;
//! 链路认证失败
const int TAPIERROR_LinkAuthFail = -2;
//! 主机地址不可用
const int TAPIERROR_HostUnavailable = -3;
//! 发送数据错误
const int TAPIERROR_SendDataError = -4;
//! 测试编号不合法
const int TAPIERROR_TestIDError = -5;
//! 没准备好测试网络
const int TAPIERROR_NotReadyTestNetwork = -6;
//! 当前网络测试还没结束
const int TAPIERROR_CurTestNotOver = -7;
//! 没用可用的接入前置
const int TAPIERROR_NOFrontAvailable = -8;
//! 数据路径不可用
const int TAPIERROR_DataPathAvaiable = -9;
//! 重复登录
const int TAPIERROR_RepeatLogin = -10;
//! 内部错误
const int TAPIERROR_InnerError = -11;
//! 上一次请求还没有结束
const int TAPIERROR_LastReqNotFinish = -12;
//! 输入参数非法
const int TAPIERROR_InputValueError = -13;
//! 授权码不合法
const int TAPIERROR_AuthCode_Invalid = -14;
//! 授权码超期
const int TAPIERROR_AuthCode_Expired = -15;
//! 授权码类型不匹配
const int TAPIERROR_AuthCode_TypeNotMatch = -16;
//! API还没有准备好
const int TAPIERROR_API_NotReady = -17;
//! UDP端口监听失败
const int TAPIERROR_UDP_LISTEN_FAILED = -18;
//! UDP正在监听
const int TAPIERROR_UDP_LISTENING = -19;
//! 接口未实现
const int TAPIERROR_NotImplemented = -20;
//! 每次登录只允许调用一次
const int TAPIERROR_CallOneTimeOnly = -21;
//! 超过下单频率。
const int TAPIERROR_ORDER_FREQUENCY = -22;
//! 查询频率太快。
const int TAPIERROR_RENTQRY_TOOFAST = -23;
//! 不符合调用条件。
const int TAPIERROR_CALL_NOCONDITION = -24;
//! 改单撤单时没有找到对应订单。
const int TAPIERROR_ORDER_NOTFOUND = -25;

//! 日志路径为空。
const int TAPIERROR_LOGPATH_EMPTY = -26;
//! 打开日志文件失败
const int TAPIERROR_LOGPATH_FAILOPEN = -27;
//! 没有交易员登录权限
const int TAPIERROR_RIGHT_TRADER = -28;
//! 没有订单录入或者成交录入权限
const int TAPIERROR_RIGHT_ORDERINPUT = -29;
//! 没有订单修改和订单删除权限，成交删除权限
const int TAPIERROR_RIGHT_LOCALOPERATION = -30;
//! 没有订单转移权限
const int TAPIERROR_RIGHT_ORDERTRANSFER = -31;
//! 成交录入时系统号为空
const int TAPIERROR_FILLINPUT_SYSTEMNO = -32;
//! 成交删除时成交号为空。
const int TAPIERROR_FILLREMOVE_MATCHNO = -33;

//! 成交删除时没有找到对应的成交
const int TAPIERROR_FILLREQMOVE_NOFUND = -34;
//! 订单修改时客户账号变动。
const int TAPIERROR_LOCALMODIFY_ACCOUNT = -35;
//! 订单转移时客户账号没有变动
const int TAPIERROR_LOCALTRANSFER_ACCOUNT = -36;
//! 修改的电话密码位数不对或者包含特殊字符。
const int TAPIERROR_INPUTERROR_PHONE = -37;

//!	未绑定的二次认证信息
const int TAPIERROR_ERROR_CONTACT = -38;
//! 二次认证有效期内不能再申请二次认证码
const int TAPIERROR_ERROR_REJESTVERTIFICATE = -39;
//! 发送二次认证码的验证请求之前，需要先发送请求二次认证码
const int TAPIERROR_ERROR_NOTREQUESTSECONDCODE = -44;

//! 没有设置客户密码的权限。
const int TAPIERROR_RIGHT_SETPASSWORD = -40;
//! 风险保单单客户无法撤销或更改
const int TAPIERROR_RISK_OPERERROR = -41;
//! 改单是客户账号填写与订单客户账号不一致
const int TAPIERROR_ORDER_MODACCOUNT = -42;
//! 内存申请失败
const int TAPIERROR_MEMORY_ALLOCFAILED = -43;

//! 用户授权信息没有该品种下单权限
const int TAPIERROR_ERROR_LICENSECOMMODITY = -45;
//! 北斗星系统不可调用
const int TAPIERROR_ERROR_SYSTEMTYPE = -56;
//! 正在重连，无法进行此操作
const int TAPIERROR_ERROR_RECONNECTING = -57;
//! 自助解冻成功，请重新登录
const int TAPIERROR_UNFREEZE_SUCCESS = -58;
//! 查询历史数据的时间区间最多31天
const int TAPIERROR_HISDATA_DAYS = -59;

//=============================================================================
/**
 * \addtogroup G_ERR_STOCK_CHECK ETF系统错误号
 *	@{
 */
//=============================================================================
//! 非中继模式禁止调用该接口
const int TAPIERROR_GATHERINFO_NORELAY = -46;
//! 用户采集信息不全（不影响登录）
const int TAPIERROR_GATHERINFO_PARTY = -47;
//! 看穿式信息采集库加载失败
const int TAPIERROR_GATHERINFO_DATALOAD = -48;

//=============================================================================
/**
 * \addtogroup G_ERR_STOCK_CHECK 港股系统错误号
 *	@{
 */
//=============================================================================
//! 输入价格不符合阶梯最小变动价规则
const int TAPIERROR_ERROR_PRICETICK = -50;
//! 超过最高融资比例
const int TAPIERROR_OVER_MAXLOANRATIO = -52;
//! 超过最高融资金额
const int TAPIERROR_OVER_MAXLOANVALUE = -53;
//! 申购数量不符合要求
const int TAPIERROR_OVER_APPLYQTY = -54;
//! 未找到IPO信息
const int TAPIERROR_NULL_IPOINFO = -55;

/** @}*/

//=============================================================================
/**
 *	\addtogroup G_ERR_INPUT_CHECK		输入参数检查错误
 *	@{
 */
//=============================================================================
//! 输入数据为NULL
const int TAPIERROR_INPUTERROR_NULL = -10000;
//! 输入错误的:TAPIYNFLAG
const int TAPIERROR_INPUTERROR_TAPIYNFLAG = -10001;
//! 输入错误的:TAPILOGLEVEL
const int TAPIERROR_INPUTERROR_TAPILOGLEVEL = -10002;
//! 输入错误的:TAPICommodityType
const int TAPIERROR_INPUTERROR_TAPICommodityType = -10003;
//! 输入错误的:TAPICallOrPutFlagType
const int TAPIERROR_INPUTERROR_TAPICallOrPutFlagType = -10004;
//! 输入错误的:TAPIBucketDateFlag
const int TAPIERROR_INPUTERROR_TAPIBucketDateFlag = -11001;
//! 输入错误的:TAPIHisQuoteType
const int TAPIERROR_INPUTERROR_TAPIHisQuoteType = -11002;
//! 输入错误的:TAPIAccountType
const int TAPIERROR_INPUTERROR_TAPIAccountType = -12001;
//! 输入错误的:TAPIUserTypeType
const int TAPIERROR_INPUTERROR_TAPIUserTypeType = -12002;
//! 输入错误的:TAPIAccountState
const int TAPIERROR_INPUTERROR_TAPIAccountState = -12003;
//! 输入错误的:TAPIAccountFamilyType
const int TAPIERROR_INPUTERROR_TAPIAccountFamilyType = -12004;
//! 输入错误的:TAPIOrderTypeType
const int TAPIERROR_INPUTERROR_TAPIOrderTypeType = -12005;
//! 输入错误的:TAPIOrderSourceType
const int TAPIERROR_INPUTERROR_TAPIOrderSourceType = -12006;
//! 输入错误的:TAPITimeInForceType
const int TAPIERROR_INPUTERROR_TAPITimeInForceType = -12007;
//! 输入错误的:TAPISideType
const int TAPIERROR_INPUTERROR_TAPISideType = -12008;
//! 输入错误的:TAPIPositionEffectType
const int TAPIERROR_INPUTERROR_TAPIPositionEffectType = -12009;
//! 输入错误的:TAPIHedgeFlagType
const int TAPIERROR_INPUTERROR_TAPIHedgeFlagType = -12010;
//! 输入错误的:TAPIOrderStateType
const int TAPIERROR_INPUTERROR_TAPIOrderStateType = -12011;
//! 输入错误的:TAPICalculateModeType
const int TAPIERROR_INPUTERROR_TAPICalculateModeType = -12012;
//! 输入错误的:TAPIMatchSourceType
const int TAPIERROR_INPUTERROR_TAPIMatchSourceType = -12013;
//! 输入错误的:TAPIOpenCloseModeType
const int TAPIERROR_INPUTERROR_TAPIOpenCloseModeType = -12014;
//! 输入错误的:TAPIFutureAlgType
const int TAPIERROR_INPUTERROR_TAPIFutureAlgType = -12015;
//! 输入错误的:TAPIOptionAlgType
const int TAPIERROR_INPUTERROR_TAPIOptionAlgType = -12016;
//! 输入错误的:TAPIBankAccountLWFlagType
const int TAPIERROR_INPUTERROR_TAPIBankAccountLWFlagType = -12017;
//! 输入错误的:TAPIBankAccountStateType
const int TAPIERROR_INPUTERROR_TAPIBankAccountStateType = -12018;
//! 输入错误的:TAPIBankAccountSwapStateType
const int TAPIERROR_INPUTERROR_TAPIBankAccountSwapStateType = -12019;
//! 输入错误的:TAPIBankAccountTransferStateType
const int TAPIERROR_INPUTERROR_TAPIBankAccountTransferStateType = -12020;
//! 输入错误的:TAPIMarginCalculateModeType
const int TAPIERROR_INPUTERROR_TAPIMarginCalculateModeType = -12021;
//! 输入错误的:TAPIOptionMarginCalculateModeType
const int TAPIERROR_INPUTERROR_TAPIOptionMarginCalculateModeType = -12022;
//! 输入错误的:TAPICmbDirectType
const int TAPIERROR_INPUTERROR_TAPICmbDirectType = -12023;
//! 输入错误的:TAPIDeliveryModeType
const int TAPIERROR_INPUTERROR_TAPIDeliveryModeType = -12024;
//! 输入错误的:TAPIContractTypeType
const int TAPIERROR_INPUTERROR_TAPIContractTypeType = -12025;
//! 输入错误的:TAPIPartyTypeType
const int TAPIERROR_INPUTERROR_TAPIPartyTypeType = -12026;
//! 输入错误的:TAPIPartyCertificateTypeType
const int TAPIERROR_INPUTERROR_TAPIPartyCertificateTypeType = -12027;
//! 输入错误的:TAPIMsgReceiverType
const int TAPIERROR_INPUTERROR_TAPIMsgReceiverType = -12028;
//! 输入错误的:TAPIMsgTypeType
const int TAPIERROR_INPUTERROR_TAPIMsgTypeType = -12029;
//! 输入错误的:TAPIMsgLevelType
const int TAPIERROR_INPUTERROR_TAPIMsgLevelType = -12030;
//! 输入错误的:TAPITransferDirectType
const int TAPIERROR_INPUTERROR_TAPITransferDirectType = -12031;
//! 输入错误的:TAPITransferStateType
const int TAPIERROR_INPUTERROR_TAPITransferStateType = -12032;
//! 输入错误的:TAPITransferTypeType
const int TAPIERROR_INPUTERROR_TAPITransferTypeType = -12033;
//! 输入错误的:TAPITransferDeviceIDType
const int TAPIERROR_INPUTERROR_TAPITransferDeviceIDType = -12034;
//! 输入错误的:TAPITacticsTypeType
const int TAPIERROR_INPUTERROR_TAPITacticsTypeType = -12035;
//! 输入错误的:TAPIORDERACT
const int TAPIERROR_INPUTERROR_TAPIORDERACT = -12036;
//! 输入错误的:TAPIBillTypeType
const int TAPIERROR_INPUTERROR_TAPIBillTypeType = -12037;
//! 输入错误的:TAPIBillFileTypeType
const int TAPIERROR_INPUTERROR_TAPIBillFileTypeType = -12038;
//! 输入错误的:TAPIOFFFlagType
const int TAPIERROR_INPUTERROR_TAPIOFFFlagType = -12039;
//! 输入错误的:TAPICashAdjustTypeType
const int TAPIERROR_INPUTERROR_TAPICashAdjustTypeType = -12040;
//! 输入错误的:TAPITriggerConditionType
const int TAPIERROR_INPUTERROR_TAPITriggerConditionType = -12041;
//! 输入错误的:TAPITriggerPriceTypeType
const int TAPIERROR_INPUTERROR_TAPITriggerPriceTypeType = -12042;
//! 输入错误的:TAPITradingStateType
const int TAPIERROR_INPUTERROR_TAPITradingStateType = -12043;
//! 输入错误的:TAPIMarketLevelType
const int TAPIERROR_INPUTERROR_TAPIMarketLevelType = -12044;
//! 输入错误的:TAPIOrderQryTypeType
const int TAPIERROR_INPUTERROR_TAPIOrderQryTypeType = -12045;
//! 输入错误的: ClientID，ClientID包含特殊字符。
const int TAPIERROR_INPUTERROR_TAPIClientID = -12046;
//! 历史行情查询参数不合法
const int TAPIERROR_INPUTERROR_QryHisQuoteParam = -13001;
//! 价格和数量中包含NAN或者INF不合法的数值
const int TAPIERROR_INPUTERROR_TAPIIncludeNAN = -13002;
//! 输入错误的到期日
const int TAPIERROR_INPUTERROR_TAPIExpireTime = -12047;
//! 错误的密码类型
const int TAPIERROR_INPUTERROR_TAPIPasswordType = -12048;
//! 错误的结算数据类型
const int TAPIERROR_INPUTERROR_TAPISettleFlagType = -12049;
//! 输入错误的:TAPILoginTypeType
const int TAPIERROR_INPUTERROR_TAPILoginTypeType = -12050;
//! 输入错误的:TapAPISpecialOrderTypeType
const int TAPIERROR_INPUTERROR_TapAPISpecialOrderTypeType = -12051;
//! 输入错误的:TapAPISpecialOrderTypeType
const int TAPIERROR_INPUTERROR_TapAPICombineStrategyType = -12052;
//! 输入错误的:TAPIClientIDType
const int TAPIERROR_INPUTERROR_TAPIClientIDType = -12053;
//! 输入错误的:TAPIClientLocationIDType
const int TAPIERROR_INPUTERROR_TAPIClientLocationIDType = -12054;
//! 输入错误的:TapAPIApplyTypeType
const int TAPIERROR_INPUTERROR_TapAPIApplyTypeType = -12055;
//! 输入错误的:TAPIDATE
const int TAPIERROR_INPUTERROR_TAPIDATE = -12056;

/** @}*/

//=============================================================================
/**
 *	\addtogroup G_ERR_DISCONNECT_REASON	网络断开错误代码定义
 *	@{
 */
//=============================================================================
//! 主动断开
const int TAPIERROR_DISCONNECT_CLOSE_INIT = 1;
//! 被动断开
const int TAPIERROR_DISCONNECT_CLOSE_PASS = 2;
//! 读错误
const int TAPIERROR_DISCONNECT_READ_ERROR = 3;
//! 写错误
const int TAPIERROR_DISCONNECT_WRITE_ERROR = 4;
//! 缓冲区满
const int TAPIERROR_DISCONNECT_BUF_FULL = 5;
//! 异步操作错误
const int TAPIERROR_DISCONNECT_IOCP_ERROR = 6;
//! 解析数据错误
const int TAPIERROR_DISCONNECT_PARSE_ERROR = 7;
//! 连接超时
const int TAPIERROR_DISCONNECT_CONNECT_TIMEOUT = 8;
//! 初始化失败
const int TAPIERROR_DISCONNECT_INIT_ERROR = 9;
//! 已经连接
const int TAPIERROR_DISCONNECT_HAS_CONNECTED = 10;
//! 工作线程已结束
const int TAPIERROR_DISCONNECT_HAS_EXIT = 11;
//! 操作正在进行，请稍后重试
const int TAPIERROR_DISCONNECT_TRY_LATER = 12;

/** @}*/
}  // namespace ITapTrade
#endif  //! TAP_API_ERROR_H
